1. Field of the Invention
The invention relates generally to error recovery in a serial protocol and more specifically relates to a customized circuit within a SAS expander to process use of DMA Non-Zero Offsets in data received from a SATA end device.
2. Related Patents
This patent is related to commonly owned U.S. patent application Ser. No. 13/557,437 entitled METHODS AND STRUCTURE FOR HARDWARE SERIAL ADVANCED TECHNOLOGY ATTACHMENT (SATA) ERROR RECOVERY IN A SERIAL ATTACHED SCSI (SAS) EXPANDER which is hereby incorporated by reference and is herein referred to as the “Related Patent”.
3. Discussion of Related Art
High speed serial communication systems have grown in popularity due to reduced cabling costs and the increased usable length enabled by a smaller cable with differential signaling. In particular, storage system end devices often utilize SAS and/or SATA high speed serial communication media and protocols to provide reduced cost, improved cabling lengths, and high performance.
In some embodiments, a SAS switched fabric (SAS Service Delivery Subsystem) allows coupling of SATA storage devices to the SAS domain to provide lower cost alternatives for high performance storage devices (e.g., SATA disk drives). In such environments, the SATA Tunneling Protocol (STP) of the SAS specifications is used to allow an STP initiator to open a connection through the SAS switched fabric to a SATA storage device. The switched fabric comprises one or more SAS expanders providing switchable point to point connections between an initiator device (e.g., an STP initiator such as a host system storage controller) and a target device (e.g., a SATA storage device).
In general, once a connection is established between an initiator and a target, the switched fabric becomes, essentially, a passive conduit for passing information between the two end devices (i.e., between the connected initiator and target devices). Some SAS expanders have been enhanced to provide more intelligence than a mere “passive conduit”. For example, the SAS expander discussed in the Related Patent is adapted to detect and process SATA errors in communications between an STP initiator device and a SATA end device while buffering communications there between using a speed matching buffer within the expander. For example, some recent expanders from LSI Corporation include a feature named “End Device Frame Buffering” (EDFB or more simply “Store and Forward” or “SNF”) to provide, among other features, speed matching buffering. When the EDFB features are in use, data returned from a SATA end device (i.e., in response to a read request from the initiator) could be returned to the expander and stored in the speed matching buffer in other than sequential order (i.e., where the SATA end device uses Non-Zero Offset values in DMA Setup Frame Information Structures associated with the return of data). Yet, data and associated protocol frames relating to the data must be returned to the STP initiator in proper sequence. For example, a frame indicating end of transmission from an end device should not be forwarded to the initiator device before all data has been forwarded from the end device to the initiator device through the speed matching buffer.
Thus, it is a problem for a SAS expander having such speed matching buffering features (e.g., LSI's EDFB features) to assure proper handling of data returned from a SATA end device in other than sequential order (i.e., using Non-Zero Offsets) to assure proper sequencing with other protocol frames and transmissions.